package com.delio.server.pagos.contratos;

import java.util.Date;
import java.util.List;

import com.delio.client.pagos.aportes.DescuentoAporte;
import com.delio.client.pagos.contratos.Contrato;
import com.delio.client.pagos.contratos.ContratoService;
import com.delio.client.util.MensajeData;
import com.delio.server.base.util.GxtGridPaginate;
import com.extjs.gxt.ui.client.data.FilterPagingLoadConfig;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;

public class ContratoServiceImpl extends RemoteServiceServlet implements ContratoService {
	
	private static final long serialVersionUID = 1L;

	@Override
	public PagingLoadResult<Contrato> paginateContrato(FilterPagingLoadConfig config,Integer empleado_id) {
		
		GxtGridPaginate paginate = new GxtGridPaginate();
		paginate.config = config;
		
		return Contratos.getPaginate(paginate,empleado_id);
	}

	@Override
	public MensajeData save(Contrato co,List<DescuentoAporte> ids) {
		MensajeData data = new MensajeData();
		data.guardado = true;

		if (!Contratos.save(co, ids)) {
			data.guardado = false;
			data.errorTipo=Contratos.errorCode;
			
		}
	 
		
		return data;
	}
	
	public Integer count(){
		
			return Contratos.getCount();
	}
	
	@Override
	public MensajeData save(Contrato co) {
		MensajeData data = new MensajeData();
		data.guardado = true;

		if (!Contratos.save(co)) {
			data.guardado = false;
			data.errorTipo=Contratos.errorCode;
			
		}
	 
		
		return data;
	}
	
	

	@Override
	public MensajeData delete(Integer id) {
		MensajeData data = new MensajeData();
		data.guardado = true;

		if (!Contratos.delete(id)) {
			data.guardado = false;
			}
			data.errorTipo=Contratos.errorCode2;
			
		
	
		return data;
	}

	@Override
	public MensajeData deleteAll(String ids) {
		MensajeData data = new MensajeData();
		data.guardado = true;

		if (!Contratos.deleteAll(ids)) {
			data.guardado = false;
		}

		return data;
	}
	
	
  public MensajeData terminarcontrato(Integer contrato_id, Date fecha){
	  MensajeData data=new MensajeData();
	  data.guardado=true;
	  if(!Contratos.terminarcontrato(contrato_id, fecha))
		  data.guardado = false;
	  		  
	  return data;
  }	
	
}
